package com.chenjt.jvm.first.four_stack;

/**
 * 注释：栈帧运行原理
 *
 * 方法的结束方式分为两种
 * 1.正常结束，以return为代表
 * 2.方法执行中出现未捕获处理的异常，以抛出异常的方式结束
 *
 * @author chenjt
 * @date 2025/6/5 14:33
 */
public class StackFrameTest {


    public static void main(String[] args) {
        try {
            StackFrameTest stackFrameTest = new StackFrameTest();
            stackFrameTest.method1();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("main()正常结束");
        //  return;// 没有返回值的方法这里可以省略
    }


    public void method1(){
        System.out.println("method1开始执行...");
        method2();
        System.out.println("method1执行结束...");
        System.out.println(10/0);

    }

    public int method2() {
        System.out.println("method2开始执行...");
        int i = 10;
        int k = (int)method3();
        System.out.println("method2即将结束...");
        return i + k;
    }

    public double method3() {
        System.out.println("method3开始执行...");
        double d = 20.0;
        System.out.println("method3即将结束...");
        return d;
    }


}
